Cách tạo và sử dụng lệnh Alias trong Linux

Hướng dẫn chi tiết cách tạo và sử dụng lệnh Alias trong Linux - lệnh cực hiệu quả để đặt một tên khác gọn hơn cho những dòng lệnh phức tạp.

1. Lệnh alias trong Linux là gì?

Trong Linux có một công cụ thu gọn lệnh rất tiên lợi và ta gọi là Alias, vậy Alias là một cách khai báo các lệnh viết tắt nhằm tiết kiệm thời gian gõ phím và dễ nhớ hơn. Thay vì bạn gõ một dòng lệnh dài hàng trăm chử thì bạn chỉ việc gõ đôi ba chữ là có thể thay thế lệnh đó được.

Cách tạo và sử dụng lệnh Alias trong Linux

Theo mặc định các lệnh viết tắt được lưu trữ trong file ~/.bashrc hoặc ~/.bash_profile, trong đó dấu ~ là viết tắt cho thư mục home của bạn. Ví dụ thư mục home của bạn là /home/nickfarrow/ thì file đó sẽ là /home/nickfarrow/.base_profile

Theo nội dung hướng dẫn trong file .bash_profile như sau:

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

Nó nói các bạn nên viết định nghĩa các lệnh alias ra một file riêng, ví dụ như ~/.bash_aliases rồi load nó bằng câu lệnh ~/.bash_aliases. Cái này thì tùy, mình viết luôn vào file .bash_profile cũng được.

Khi muốn hiện danh sách các câu lệnh viết tắt của alias thì bạn gõ lệnh trên terminal:

alias

Thì lúc này trên màn hình terminal sẽ hiển thị danh sách các alias dạng như sau:

Muốn thêm một định nghĩa alias thì các bạn mở file .bash_profile hoặc .bashrc (hoặc file chứa alias mà bạn tự định nghĩa). Sau đó thêm dòng định nghĩa alias vào, có dạng:

alias tên_alias='câu_lệnh'

Sau đó lưu lại, cập nhật và thay đổi bằng lệnh:

source ~/.bash_profile

Hoặc:

. ~/.bash_profile

2. Các nhóm lệnh alias Linux hay dùng

Sau đây là một số nhóm lệnh mà mình nghĩ nó hay sử dụng nên mình đã đưa vào danh sách các Alias, nếu bạn có nhu cầu thì có thể sử dụng luôn hoặc tham khảo để biết cách tạo mới một alias trong Linux.

CD

Lệnh cd được dùng thường xuyên vì nó là lệnh di chuyển tới các thư mục làm việc. Ví dụ mình thường xuyên vào một số thư mục nên đã viết ngắn lại bằng Alias như sau:

alias cdandr='cd ~/Public/android-sdk-linux/platform-tools/'
alias cdcpd='cd /var/www/Idealive/cookpad/'
alias cddt='cd /var/www/ScriptOne/delta_v/'
alias cdfreelv='cd /var/www/Freelancer/Laravel/'
alias cdidl='cd ~/www/Idealive/'
alias cdnode='cd /home/nickfarrow/www/Script2/Nodejs/'
alias c='clear' # clear screen
alias ..='cd ..' # Lên thư mục trên 1 cấp
alias ...='cd ../..' # Lên 2 thư mục
alias cl='clear && ls' # clear screen xong list file trong mục hiện thời.

SSH

SSH - Secure Shell dùng để đăng nhập từ xa một cách an toàn. Nếu bạn muốn tiết kiệm thời gian gõ lệnh thì hãy bổ sung các Alias vào.

Ví dụ:

alias sshalpha2='ssh root@133.242.54.69'
alias sshcpad='ssh -i ~/www/Idealive/cookpad/cookpad-diet_opensshkey kpd@mgr.cookpad-diet.jp'
alias sshicts='ssh root@128.199.83.216'
alias sshredm='ssh idea_rm@133.242.60.174'

Như ở dòng số hai bạn thấy thay vì phải gõ một đoạn khá dài là:

ssh -i ~/www/Idealive/cookpad/cookpad-diet_opensshkey kpd@mgr.cookpad-diet.jp

Thì mình chỉ cần gõ sshcpad là xong.

Grep, find

Các lệnh grep, find rất hay dùng khi tìm kiếm file, từ khóa trong file. Ví dụ bạn muốn tìm tất cả các từ "menber" trong thư mục project:

grep -rl "menber" ig_project/

Trong đó tham số:

  • -r lặp lại cho mọi file trong thư mục
  • -l list các file thỏa mãn chứa từ khóa thành các dòng.

Nếu bạn muốn giới hạn chỉ tìm các file .php, rồi sau đó sửa "menber" thành "member" thì như sau:

find . -name "*.php" | xargs grep -rl "menber" $1 | xargs sed -i 's/menber/member/' $1

Sau đây các lênh viết tắt mình hay đặt cho grep, find:

alias grl='grep -rl'
alias grn='grep -rn'
alias grr='grep -r'
alias grrex='grep -r --exclude=-s.3'

Apache, MySQL, PHP (LAMP), MAMP

Một số Alias trong Linux khi sử dụng với Apache:

alias apc_rld='sudo service apache2 reload' # Reload apache
alias apc_rst='sudo service apache2 restart'
alias tail_apch_err='tail -f /var/log/apache2/error.log' # see error log apache
alias tailphp='tail -f /var/log/apache2/error.log'
alias vimsite='cd /etc/apache2/sites-available/ && sudo vim $1' # Edit virtual host name

Trên OSX web developer hay dùng MAMP hoặc vagrant. Với MAMP có các lệnh sau hay dùng thường xuyên nên mình đã thu gọn lại:

alias mampsql='/Applications/MAMP/Library/bin/mysql -u root -p'
alias mampctl=' sudo /Applications/MAMP/Library/bin/apachectl restart'
alias vimphost=' vim /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf'
alias tailsql='tail -f /Applications/MAMP/logs/mysql_sql.log'
alias tailsql2='tail -f /Applications/MAMP/logs/mysql_error_log.err'
alias tailphp='tail -f /Applications/MAMP/logs/php_error.log'
alias tailapache='tail -f /Applications/MAMP/logs/apache_error.log'

Git

Phần này đòi hỏi bạn đã có kiến thức cơ bản về Git. Bản thân git đã có tính năng alias

Ví dụ: Bạn muốn xem thông tin last commit, bạn setting như sau:

git config --global alias.last 'log -1 HEAD'

Như vậy bây giờ chỉ cần gõ “ git last “ là xong. Còn theo cách alias thông thường:

alias gitbr='git branch'
alias gitcm='git commit -m'
alias gitcmnr='git log |grep commit |wc -l' # Đếm số lượng commit 
alias gitco='git checkout'
alias gitdif='git diff'
alias gitpod='git push origin develop'
alias gitpom='git push origin master'
alias gitpuod='git pull origin develop'
alias gitpuom='git pull origin master'
alias gitst='git status'
 
alias gitcofr='/Users/dungnv/bin/merge_arg.sh' # Lệnh này hơi phức tạp nên mình gọi 1 file script khác

Ví dụ: Các bạn có các branch sau trong một project dùng Git:

  • codeception
  • develop
  • feature/accounts
  • feature/encrypt-password
  • feature/front_footer
  • feature/front_list
  • feature/front_profile
  • feature/front_top
  • feature/gui_firefox_install
  • feature/localForVn ...

Rõ ràng việc phải gõ nhiều lần feature/... sẽ tốn thời gian nên mình đặt gọn lại qua đoạn mã sau:

File merge_arg.sh:

#!/bin/bash
FEATURE_FRONT_BRANCH="feature/front_"
FEATURE_FRONT_BRANCH+="$1"
git checkout $FEATURE_FRONT_BRANCH

Bây giờ muốn checkout 1 branch front_profile, đơn giản như sau:

gitcofr profile # Tương đương với ~ git checkout feature/front_profile.

Các lệnh khác

Sau đây là một số lệnh alias khác.

  • Ping:
alias fastping='ping -c 100 -s.2'
alias ping='ping -c 5'
alias ping100='ping 192.168.100.1'
alias pinggg='ping -n google.com'
alias pinglocal='ping 192.168.1.1'
alias pinglocal0='ping 192.168.0.1'
alias pingyh='ping -n yahoo.com'
  • Disk use:
alias duh='du -sh' # Đo dụng lượng ổ đĩa sử dụng.
alias dus='du -sh * |sort -n' # Đo dung lượng các thư mục con.
  • Khác:
alias mysqllogin='mysql -u dungnv -p'
alias temp='sensors' # Đo nhiệt độ, cần cài sensors trước.
alias vimbashrc='vim ~/.bashrc' # Sửa file chứa aliases
alias sourcebash='source ~/.bashrc && source ~/.bash_profile' # Cập nhật file aliases.

Trên đây mình đã trình bày các câu lệnh của một số phần mềm thông dụng trên linux như git, apache, grep ... Do là các câu lệnh thường dùng nên người ta hay viết gọn lại để tiết kiệm thời gian gõ phím. Bài này rất đơn giản nhưng mình nghĩ khá hữu ích. Các bạn có gì bổ sung hay thắc mắc vui lòng comment bên dưới ha.

Tài liệu tham khảo: https://github.com/dungnv53/Hittie/blob/master/Code/.bash_profile

Nguồn: freetuts